import fs from 'fs/promises';
import path from 'path';

/**
 * 递归删除文件夹
 */
async function deleteFolder(targetPath) {
  try {
    // 检查路径是否存在
    await fs.access(targetPath);
  } catch {
    console.log(`文件夹不存在，无需删除：${targetPath}`);
    return;
  }

  try {
    const stats = await fs.stat(targetPath);
    if (!stats.isDirectory()) {
      console.error(`错误：${targetPath} 不是文件夹！`);
      process.exit(1);
    }

    // 读取并删除子内容
    const files = await fs.readdir(targetPath);
    for (const file of files) {
      const fullPath = path.join(targetPath, file);
      const fileStats = await fs.stat(fullPath);

      if (fileStats.isDirectory()) {
        await deleteFolder(fullPath); // 递归删除子文件夹
      } else {
        await fs.unlink(fullPath); // 删除文件
      }
    }

    // 删除空文件夹
    await fs.rmdir(targetPath);
    console.log(`✅ 成功删除文件夹：${targetPath}`);
  } catch (error) {
    console.error(`❌ 删除失败：${error.message}`);
    process.exit(1);
  }
}

// 执行删除（删除当前目录下的 dist 文件夹）
deleteFolder('./dist');
